<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no">
    <meta http-equiv="X-UA-Compatible" content="ie=edge,chrome=1">
    <meta name="referrer" content="never">
    <title>操作属性的方法</title>
    <style>
        * {
            margin: 0;
            padding: 0;
        }
        ul {
            list-style: none;
        }

        .box{
            position: absolute;
            top: 50px;
            left: 50px;
            width: 150px;
            height: 150px;
            background-color: #f00;
        }
    </style>
</head>
<body>
    <div class="box"></div>

    <input type="checkbox">

    <script src="../lib/jquery/jquery.min.js"></script>
    <script type="text/javascript">
        /*
            $ele.prop(propName) 获取属性
                .prop(propName, propValue) 设置属性
                .prop({ 设置多个属性
                    propName: propValue,
                    ...
                })
                .removeProp(propName) 删除属性

            prop和attr的区别：
                对于标准属性（HTML规定的元素属性），二者设置一致，皆可在元素标签上显示
                对于非标准属性（自定义的属性），attr设置在标签上显示，prop设置相当于给元素的DOM对象添加属性

            prop与attr设置的非标准属性不能通过对方获取
                推荐使用 prop
        */
        var $box = $(".box"),
            $ipt = $("input");

        $box.prop("title", "hello box");
        console.log($box.prop("title"));
        $box.prop({
            "data-index": 35,
            style: "width: 200px"
        })

        console.log($box.prop("data-index"));

        $box.attr("index", 35);
        $box.prop("self", "hahaha");

        console.log("prop设置的属性", $box[0]["data-index"]);
        console.log("prop设置的属性", $box[0].self);

        console.log("隔离", $box.attr("self"));
        console.log("隔离", $box.prop("index"));
        
        $box.removeProp("self");
        console.log("prop设置的属性", $box[0].self);

        $ipt[0].onchange = function (){
            // console.log(this.checked);
            console.log("attr",$ipt.attr("checked"));
            console.log("prop",$ipt.prop("checked"));
        }
    </script>
</body>
</html>